AWS Organizations SCPによるリージョン制限環境下でのAWS Configは有効化すべきかに対する私見
はじめに
AWS Organizations のマルチアカウント環境では、セキュリティ強化の観点からSCP(Service Control Policy)によってリージョンを制限することがあります。
本記事では、SCPでリージョンを制限している環境下において、AWS Configを有効化すべきか否かの判断基準について、個人的な見解をまとめます。
まず、AWS Configについて説明します。AWS Configは、AWSリソースの設定変更を継続的に記録し、それらの設定がベストプラクティスや組織のポリシーに準拠しているかを評価するサービスです。
記録された情報は、トラブルシューティング、セキュリティ監査、およびコンプライアンス確認などの目的で活用できます。
AWSは、すべてのリージョンでのAWS Config有効化をベストプラクティスとして推奨しています。
結論から言いますと、この推奨事項は、SCPによるリージョン制限を実施している環境においても、同様だと考えています。
以下で、その理由をAWS Configの動作の観点から説明します。
リージョン制限環境下でのAWS Configの動作
SCPによるリージョン制限環境下でのAWS Configの動作は、以下の2つのパターンに分類されます。
- SCPでの制限対象外の場合
- SCPで制限されている場合
1. ConfigがSCPでの制限対象外の場合
Configの設定が以下の条件のいずれかに該当する場合、リージョン制限下であっても設定が記録される可能性があります。どちらも記録対象が存在する設定の前提です。
-
IAMロールとしてサービスリンクロール(AWSServiceRoleForConfig)を設定している場合
- サービスリンクロールはSCPの制限の対象外となる
-
カスタムIAMロールを使用し、かつそのロールがSCPのリージョン制限から除外されている場合
- 明示的にリージョン制限の例外として設定されている
この場合、AWSサービスによってはデフォルトでリソースが作成されているサービスもあり、Configの記録対象フィールドの追加や新しいリソースタイプのサポートといったAWS側の変更があった場合、記録される可能性があります。
ちなみに、AWSではConfigのIAMロールとして、サービスリンクロールの設定を推奨しています。
2. ConfigがSCPで制限されている場合
カスタムIAMロールを使用し、かつそのロールがSCPのリージョン制限されている場合、AWS側の変更があった場合も含め記録されることはありません。
予期せぬリソース変更の検知
いずれのパターンにおいても、Configを有効化していることで、以下のような予期せぬリソース変更を検知することが可能です。
- 悪意のある攻撃者によるSCP回避:管理アカウントの認証情報が流出し、SCP設定が解除されるケース
- SCPの意図的な変更:管理者が一時的にSCPを変更し、制限解除されたリージョンへのアクセスを許可した場合
このような予期せぬリソース変更に備えるため、すべてのリージョンでAWS Configを有効にすることで、各リージョンの設定履歴とコンプライアンス記録を一元管理でき、AWS環境全体を包括的に把握できます。
このため、SCPによるリージョン制限環境下においても、AWS Configの有効化を推奨します。
CloudTrailとの比較
リソースへの操作履歴はAWS CloudTrailでも記録・確認が可能ですが、AWS ConfigとCloudTrailではその目的と機能が異なります。以下のような要件がある場合は、AWS Configの利用がよいです。
- リソース構成の継続的な監視と変更履歴の可視化
- 組織のセキュリティポリシーやコンプライアンス要件への準拠状況の評価
- 非準拠リソースの自動検出と修復
AWS Configを有効化した場合のデメリットとして、コストの発生が挙げられます。この点について、次章で説明します。
有効化した場合のコスト
AWS Configのコストは、IAMロールの設定とSCPの制限状況に応じて変動します。
「1. ConfigがSCPでの制限外」の場合、繰り返しになりますが、Configの記録対象フィールドの追加や新しいリソースタイプのサポートといったAWS側の変更に伴い課金が発生する可能性があります。
AWS Config では、執筆時点では、記録された設定項目(configuration item recorded)ごとに 0.003 USD かかります。
ただし、リージョン制限環境でAWS Configを有効化した場合、記録対象となるリソース数が制限されるため、コストを最小限に抑えることが可能です。
また、コスト最適化のためのベストプラクティスとして、以下の設定が推奨されています。
- 1つのリージョンですべてのリソースタイプの設定変更を記録
- 他のリージョンではIAMリソースなどのグローバルリソースを記録対象から除外
この設定を適用することで、コストを効果的に抑制することが可能です。
有効化した場合の見積もり方法
AWS Configを有効化した場合のコストは、AWSブログで紹介されているAWS CloudTrailを使用した見積もり方法で算出できます。
この記事では、CloudTrailのログを使用することで、設定項目数の推定や記録対象となるリソースタイプの特定、さらに月間の予想変更回数を算出しています。
なお、この方法で算出されたコストは概算であり、実際の利用状況によって変動することにご留意ください。
より正確なコスト見積もりが必要な場合は、実際に1日程度の運用を行い、AWS Cost Explorer等で1日あたりのコストを確認することで、月間の費用を試算することができます。
まとめ
AWS Configの有効化は、セキュリティとコンプライアンスの強化に貢献します。SCPでリージョン制限をしている場合でも、その重要性は変わらないと考えます。
ただし、有効化の判断にあたっては、組織のセキュリティ要件や運用コストなど、複数の観点から総合的に評価することが望ましいでしょう。
AWS Configの有効化はベストプラクティスとして推奨されていますが、組織の状況や要件によっては、無効化も選択肢の一つとして考えられます。